/*
 * Game.h
 *
 *  Created on: 2012-8-16
 *      Author: zhangchao
 */

#ifndef GAME_H_
#define GAME_H_

#include <Common.h>

typedef struct Step{
	int ChessId;//index in array
	int IndexX;
	int IndexY;
};

int MAX_ROUND_NUM=10;
int MAX_CHESS_VAL_SUM=30000;
int MIN_CHESS_VAL_SUM=-30000;
int WIN_FLAG=31000;
int LOSE_FLAG=-31000;

void initGame();


/* 返回值和参数数据结构一致，后16位有效，
 * 16位中前6位为棋子的在数组中的位数，中间5位为X轴坐标，后5位为Y轴坐标 */
int calNextStep(int competitorStep);

/* 根据棋子原棋盘X轴，棋盘Y轴，新棋盘X轴，棋盘Y轴
 * 生成棋步结果数字（int,后16位有效） */
int makeStepIntByParam(int oldIndexX,int oldIndexY,int indexX,int indexY);

/* 根据棋步结果数字（int,后16位有效）
 * 计算原棋盘X轴，棋盘Y轴，新棋盘X轴，棋盘Y轴 */
void cutStepIntToParam(int step,int *oldIndexX,int *oldIndexY,int *indexX,int *indexY);

#endif /* GAME_H_ */
